package cn.edu.scau.cmi.front.domain;


import java.util.Calendar;

import cn.edu.scau.cmi.ema.domain.Address;
import cn.edu.scau.cmi.ema.domain.Event;
import cn.edu.scau.cmi.ema.domain.Food;
import cn.edu.scau.cmi.ema.domain.Foodbatch;
import cn.edu.scau.cmi.ema.domain.Subject;
import cn.edu.scau.cmi.ema.domain.Url;
import cn.edu.scau.cmi.ema.domain.User;

/**
 * 此处EventWrap继承自Event，但是由于在将EventWrap的属性值复制到Event时不能直接通过强制转化完成
 * （由EventWrap强制转化后得到的Event在保存时会保错，因为强制转换后的Event实际上还是EventWrap，
 * 而EventWrap不是entity），故需要通过反射技术实现EventWrap到Event的属性值clone，具体在
 * /ema/src/cn/edu/scau/cmi/tangjinwen/utils/CmiAttributeUtil.java可见，
 * 为了获得EventWrap的所有Field，必须重写Event的所有Field。
 * @author tangjinwen
 *
 */
public class EventWrap extends Event{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	protected Integer id;
	
	protected String name;
	
	protected String[] picturesName;
	
	protected Food food;
	
	protected Calendar sourceTime;
	
	protected Calendar discoveryTime;
	
	protected Calendar auditTime;
	
	protected Calendar crawlTime;
	
	protected Boolean status;
	
	protected String description;
	
	protected Address sourceAddress;
	
	protected Address discoveryAddress;
	
	protected Subject subject;
	
	protected User auditor;
	
	protected Url url;
	
	protected User reportor;
	
	protected Event parent;
	
	protected Foodbatch foodbatch;
	
	protected java.util.Set<Event> eventsForParent;
	
	protected java.util.Set<cn.edu.scau.cmi.ema.domain.Adultertype> adultertypesForEvent;
	
	protected java.util.Set<cn.edu.scau.cmi.ema.domain.Motive> motivesForEvent;

	protected java.util.Set<cn.edu.scau.cmi.ema.domain.Eventadulterlink> eventadulterlinksForEvent;
	
	protected java.util.Set<cn.edu.scau.cmi.ema.domain.Eventpunish> eventpunishsForEvent;
	
	protected java.util.Set<cn.edu.scau.cmi.ema.domain.Eventqualitytype> eventqualitytypesForEvent;
	
	protected java.util.Set<cn.edu.scau.cmi.ema.domain.Eventquantitytype> eventquantitytypesForEvent;
	
	protected java.util.Set<cn.edu.scau.cmi.ema.domain.Picture> picturesForEvent;
	
	protected java.util.Set<cn.edu.scau.cmi.ema.domain.Video> videosForEvent;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String[] getPicturesName() {
		return picturesName;
	}

	public void setPicturesName(String[] picturesName) {
		this.picturesName = picturesName;
	}

	public Food getFood() {
		return food;
	}

	public void setFood(Food food) {
		this.food = food;
	}

	public Calendar getSourceTime() {
		return sourceTime;
	}

	public void setSourceTime(Calendar sourceTime) {
		this.sourceTime = sourceTime;
	}

	public Calendar getDiscoveryTime() {
		return discoveryTime;
	}

	public void setDiscoveryTime(Calendar discoveryTime) {
		this.discoveryTime = discoveryTime;
	}

	public Calendar getAuditTime() {
		return auditTime;
	}

	public void setAuditTime(Calendar auditTime) {
		this.auditTime = auditTime;
	}

	public Calendar getCrawlTime() {
		return crawlTime;
	}

	public void setCrawlTime(Calendar crawlTime) {
		this.crawlTime = crawlTime;
	}

	public Boolean getStatus() {
		return status;
	}

	public void setStatus(Boolean status) {
		this.status = status;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public Address getSourceAddress() {
		return sourceAddress;
	}

	public void setSourceAddress(Address sourceAddress) {
		this.sourceAddress = sourceAddress;
	}

	public Address getDiscoveryAddress() {
		return discoveryAddress;
	}

	public void setDiscoveryAddress(Address discoveryAddress) {
		this.discoveryAddress = discoveryAddress;
	}

	public Subject getSubject() {
		return subject;
	}

	public void setSubject(Subject subject) {
		this.subject = subject;
	}

	public User getAuditor() {
		return auditor;
	}

	public void setAuditor(User auditor) {
		this.auditor = auditor;
	}

	public Url getUri() {
		return url;
	}

	public void setUrl(Url uri) {
		this.url = uri;
	}

	public User getReportor() {
		return reportor;
	}

	public void setReportor(User reportor) {
		this.reportor = reportor;
	}

	public Event getParent() {
		return parent;
	}

	public void setParent(Event parent) {
		this.parent = parent;
	}

	public Foodbatch getFoodbatch() {
		return foodbatch;
	}

	public void setFoodbatch(Foodbatch foodbatch) {
		this.foodbatch = foodbatch;
	}

	public java.util.Set<Event> getEventsForParent() {
		return eventsForParent;
	}

	public void setEventsForParent(java.util.Set<Event> eventsForParent) {
		this.eventsForParent = eventsForParent;
	}

	public java.util.Set<cn.edu.scau.cmi.ema.domain.Adultertype> getAdultertypesForEvent() {
		return adultertypesForEvent;
	}

	public void setAdultertypesForEvent(java.util.Set<cn.edu.scau.cmi.ema.domain.Adultertype> adultertypesForEvent) {
		this.adultertypesForEvent = adultertypesForEvent;
	}

	public java.util.Set<cn.edu.scau.cmi.ema.domain.Motive> getMotivesForEvent() {
		return motivesForEvent;
	}

	public void setMotivesForEvent(java.util.Set<cn.edu.scau.cmi.ema.domain.Motive> motivesForEvent) {
		this.motivesForEvent = motivesForEvent;
	}

	public java.util.Set<cn.edu.scau.cmi.ema.domain.Eventadulterlink> getEventadulterlinksForEvent() {
		return eventadulterlinksForEvent;
	}

	public void setEventadulterlinksForEvent(
			java.util.Set<cn.edu.scau.cmi.ema.domain.Eventadulterlink> eventadulterlinksForEvent) {
		this.eventadulterlinksForEvent = eventadulterlinksForEvent;
	}

	public java.util.Set<cn.edu.scau.cmi.ema.domain.Eventpunish> getEventpunishsForEvent() {
		return eventpunishsForEvent;
	}

	public void setEventpunishsForEvent(java.util.Set<cn.edu.scau.cmi.ema.domain.Eventpunish> eventpunishsForEvent) {
		this.eventpunishsForEvent = eventpunishsForEvent;
	}

	public java.util.Set<cn.edu.scau.cmi.ema.domain.Eventqualitytype> getEventqualitytypesForEvent() {
		return eventqualitytypesForEvent;
	}

	public void setEventqualitytypesForEvent(
			java.util.Set<cn.edu.scau.cmi.ema.domain.Eventqualitytype> eventqualitytypesForEvent) {
		this.eventqualitytypesForEvent = eventqualitytypesForEvent;
	}

	public java.util.Set<cn.edu.scau.cmi.ema.domain.Eventquantitytype> getEventquantitytypesForEvent() {
		return eventquantitytypesForEvent;
	}

	public void setEventquantitytypesForEvent(
			java.util.Set<cn.edu.scau.cmi.ema.domain.Eventquantitytype> eventquantitytypesForEvent) {
		this.eventquantitytypesForEvent = eventquantitytypesForEvent;
	}

	public java.util.Set<cn.edu.scau.cmi.ema.domain.Picture> getPicturesForEvent() {
		return picturesForEvent;
	}

	public void setPicturesForEvent(java.util.Set<cn.edu.scau.cmi.ema.domain.Picture> picturesForEvent) {
		this.picturesForEvent = picturesForEvent;
	}

	public java.util.Set<cn.edu.scau.cmi.ema.domain.Video> getVideosForEvent() {
		return videosForEvent;
	}

	public void setVideosForEvent(java.util.Set<cn.edu.scau.cmi.ema.domain.Video> videosForEvent) {
		this.videosForEvent = videosForEvent;
	}
	
}
